home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / DELPHI / NWLIB.ZIP / DEMO.ZIP / PRINTCAP.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-08-25  |  6.4 KB  |  226 lines

  1. unit Printcap;
  2.  
  3. interface
  4.  
  5. uses 
  6.      SysUtils,
  7.      WinTypes, 
  8.      WinProcs, 
  9.      Classes, 
  10.      Graphics, 
  11.      Forms, 
  12.      Controls, 
  13.      Buttons,
  14.      StdCtrls, 
  15.      Spin, 
  16.      ExtCtrls, 
  17.      nwPrint, 
  18.      Nwtools, 
  19.      Nwlib, 
  20.      NWServer;
  21.  
  22. type
  23.   TwinCapture = class(TForm)
  24.     OKBtn: TBitBtn;
  25.     CancelBtn: TBitBtn;
  26.     Panel1: TPanel;
  27.     Header1: THeader;
  28.     ServerList: TListBox;
  29.     Panel2: TPanel;
  30.     Header2: THeader;
  31.     QueueList: TListBox;
  32.     Bevel1: TBevel;
  33.     Bevel2: TBevel;
  34.     Label1: TLabel;
  35.     Label2: TLabel;
  36.     Label3: TLabel;
  37.     Label4: TLabel;
  38.     cBanner: TEdit;
  39.     nCopies: TSpinEdit;
  40.     nTimeOut: TSpinEdit;
  41.     nTabs: TSpinEdit;
  42.     lAutoEndCap: TCheckBox;
  43.     bEndCap: TButton;
  44.     nForm: TSpinEdit;
  45.     Label5: TLabel;
  46.     lFormFeeds: TCheckBox;
  47.     NWLib1: TNWLib;
  48.     NWTools1: TNWTools;
  49.     NWPrint1: TNWPrint;
  50.     NWServer1: TNWServer;
  51.     Panel3: TPanel;
  52.     Header3: THeader;
  53.     qUserList: TListBox;
  54.     Panel4: TPanel;
  55.     Header4: THeader;
  56.     qOperatorList: TListBox;
  57.     Panel5: TPanel;
  58.     Header5: THeader;
  59.     qServerList: TListBox;
  60.     bQueue: TButton;
  61.     procedure FormShow(Sender: TObject);
  62.     procedure ServerListDblClick(Sender: TObject);
  63.     procedure OKBtnClick(Sender: TObject);
  64.     procedure bEndCapClick(Sender: TObject);
  65.     procedure FormCreate(Sender: TObject);
  66.     procedure QueueListDblClick(Sender: TObject);
  67.     procedure QueueListClick(Sender: TObject);
  68.   private
  69.     { Private declarations }
  70.   public
  71.     { Public declarations }
  72.   end;
  73.  
  74. var
  75.   winCapture: TwinCapture;
  76.  
  77. implementation
  78.  
  79. {$R *.DFM}
  80.  
  81. uses
  82.   list ;
  83.  
  84. { Store Capture Options }
  85. var
  86.   captureFlags : TNWCaptureFlags ; 
  87.  
  88. procedure TwinCapture.FormCreate(Sender: TObject);
  89.   begin
  90.     { get current capture environment} 
  91.     if (not getCaptureFlags(1,captureFlags)) then
  92.       alertBox('Error Retrieving Capture Flags for LPT1:') ;
  93.   end;
  94.  
  95. procedure TwinCapture.FormShow(Sender: TObject);
  96.   begin
  97.     { Populate Listboxes }
  98.     serverList.items.AddStrings(
  99.                       getConnectedServerList) ;
  100.     queueList.items.AddStrings(
  101.                       getBinderyList(getPrimaryServerID,nw_printq)) ;
  102.     qServerList.items.AddStrings(
  103.                       getQueueServers(getPrimaryServerID,captureFlags.qname)) ;
  104.     qUserList.items.AddStrings(
  105.                       getQueueUsers(getPrimaryServerID,captureFlags.qname)) ;
  106.     qOperatorList.items.AddStrings(
  107.                       getQueueOperators(getPrimaryServerID,captureFlags.qname)) ;
  108.     bEndCap.enabled := IsCaptured(1) ; { LPT1: }                               
  109.     { Read Capture Flags }
  110.     nCopies.value  := captureFlags.Copies ;
  111.     nTabs.value    := captureFlags.tabSize ;
  112.     nTimeOut.value := captureFlags.timeout ;
  113.     cBanner.text   := captureFlags.banner ;
  114.     nForm.Value    := captureFlags.formType ;
  115.     lAutoEndCap.checked := captureFlags.autoEndCap ;
  116.     lFormFeeds.checked  := captureFlags.FormFeed ;
  117.  
  118.     { Set Listbox indexes }
  119.     serverlist.itemindex := 
  120.          serverList.items.indexOf(getServerName(captureFlags.nServer));
  121.     queuelist.itemindex := 
  122.          queuelist.items.indexOf(captureFlags.qname) ;
  123.   end;
  124.  
  125. procedure TwinCapture.ServerListDblClick(Sender: TObject);
  126.   var
  127.     nconn : TNWConnHandle ;
  128.     ctemp : string ;
  129.   begin
  130.     { Select New Server and Build New Queue List}
  131.     if (serverList.items.count > 0) then
  132.       begin
  133.         ctemp := serverList.items[serverList.itemindex] ;
  134.         nConn := getServerHandle(ctemp) ;
  135.         if nConn > 0 then
  136.           begin
  137.             queueList.clear ;
  138.             queueList.items.addStrings(getBinderyList(nConn,nw_printq));
  139.           end
  140.       end;
  141.   end;
  142.  
  143. procedure TwinCapture.OKBtnClick(Sender: TObject);
  144.   var
  145.     cserver  : string ;
  146.     cqueue   : string ;
  147.   begin     
  148.     if (queueList.items.count < 1) or (serverList.items.count < 1) then
  149.       exit ;    
  150.     if (serverList.itemIndex < 0) then
  151.       serverList.itemIndex := 0 ;
  152.     if (queueList.itemIndex < 0) then
  153.       queueList.itemIndex := 0 ;
  154.     cserver := serverList.items[serverList.itemindex] ;
  155.     cqueue  := queueList.items[queueList.itemindex] ;
  156.     { seed the captureFlags structure }
  157.     with captureFlags do begin
  158.       copies     := nCopies.value ;
  159.       banner     := cbanner.text ;
  160.       tabSize    := nTabs.value ;
  161.       timeOut    := nTimeOut.value ;
  162.       formType   := nform.value ;
  163.       autoEndCap := lAutoEndCap.checked;
  164.       formFeed   := lFormFeeds.checked ;
  165.     end;
  166.    if capture(getServerHandle(cserver),cQueue,1,captureFlags) then 
  167.       begin
  168.         bEndCap.enabled := True ;
  169.         okBox(cserver +'/' + cqueue + ';Captured Successfully!') ;
  170.       end
  171.     else
  172.       alertBox('Error Capturing LPT1: to Device ' +
  173.                queueList.items[MaxLong(queuelist.itemIndex,0)]) ;        
  174.   end;
  175.  
  176. procedure TwinCapture.bEndCapClick(Sender: TObject);
  177.   begin
  178.     bEndCap.enabled := (not EndCap(1)) ;
  179.   end;
  180.  
  181. procedure TwinCapture.QueueListDblClick(Sender: TObject);
  182.   var
  183.     jobList : TStringList ;
  184.   begin
  185.     if (queueList.items.count > 0) then
  186.       begin
  187.         if (queueList.itemIndex < 0) then
  188.           queueList.itemIndex := 0 ;
  189.         {show print queue jobs}
  190.         try
  191.           application.createForm(TWinList,winList) ;
  192.           winList.inServer := getServerHandle(serverList.items[serverList.itemIndex]);
  193.           winList.inQueue  := getObjNumber(winList.inServer,
  194.                                            queueList.items[queueList.itemIndex],
  195.                                            nw_printQ) ;
  196.           { set the list form's onShow event }
  197.           winList.onShow   := winList.onPrintJobsShow ;
  198.           winList.showModal ;
  199.         finally
  200.           winList.free ;
  201.         end;
  202.       end;  
  203.   end;
  204.  
  205. procedure TwinCapture.QueueListClick(Sender: TObject);
  206.   var
  207.     jobList : TStringList ;
  208.   begin
  209.     if (queueList.items.count > 0) then
  210.       begin
  211.         qUserList.items.clear ;
  212.         qUserList.items.AddStrings(
  213.             getQueueUsers(getPrimaryServerID,queueList.items[queueList.itemIndex])) ;
  214.  
  215.         qOperatorList.items.clear ;
  216.         qOperatorList.items.AddStrings(
  217.             getQueueOperators(getPrimaryServerID,queueList.items[queueList.itemIndex])) ;
  218.  
  219.         qServerList.items.clear ;
  220.         qServerList.items.AddStrings(
  221.             getQueueServers(getPrimaryServerID,queueList.items[queueList.itemIndex])) ;
  222.       end;  
  223.   end;
  224.  
  225. end.
  226.